Skip to content

[feat] font customization improvements#109

Open
thisiskarrydev wants to merge 1 commit intoDaleHuntGB:mainfrom
thisiskarrydev:feat_add-font-settings-to-all-elements
Open

[feat] font customization improvements#109
thisiskarrydev wants to merge 1 commit intoDaleHuntGB:mainfrom
thisiskarrydev:feat_add-font-settings-to-all-elements

Conversation

@thisiskarrydev
Copy link
Copy Markdown

@thisiskarrydev thisiskarrydev commented Mar 6, 2026

Summary

  • Add individual Font, Font Flag, and Font Colour customization to every UI element's Text Settings (Essential, Utility, Buffs, Custom, AdditionalCustom, Item, ItemSpell, Trinket, PowerBar, SecondaryPowerBar, CastBar)
  • CastBar has separate font controls for Spell Name and Cast Time
  • Trinket now has a full Text Settings section (previously had none)
  • Add a Global Font Colour picker alongside the existing Global Font and Font Flag
  • Global Font Settings propagate to all per-element settings when changed, but individual elements can be overridden manually afterwards
  • Add Font and Font Flag controls to Global Cooldown Text Settings

Details

New helper: BCDM:ResolveElementFont(fontName) in Core/Globals.lua -- resolves a per-element font via LSM, falling back to the global media font if unset.

Propagation logic: PropagateGlobalFontSettings() in Core/GUI.lua -- when the global Font, Font Flag, or Font Colour is changed, it overwrites the corresponding setting on all cooldown viewer elements, power bars, cast bar text regions, and cooldown text. This allows a one-click global change while still permitting per-element overrides afterwards.

Defaults: All elements now store Font = "Friz Quadrata TT" and FontFlag = "OUTLINE" in their respective Text tables, matching the existing global defaults. Existing saved variables will pick up these new defaults automatically via AceDB.

Module updates: All SetFont calls across 9 module files now read from per-element Text.Font and Text.FontFlag instead of the global BCDM.Media.Font and GeneralDB.Fonts.FontFlag.

Files Changed

  • Core/Defaults.lua -- new Font/FontFlag/Colour fields across all element Text tables + Trinket Text section
  • Core/Globals.lua -- ResolveElementFont() helper
  • Core/GUI.lua -- Font/FontFlag dropdowns + ColourPickers for all element Text Settings, global propagation logic, global Font Colour picker
  • Modules/CooldownManager.lua, CustomCooldownViewer.lua, AdditionalCustomCooldownViewer.lua, CustomItemViewer.lua, CustomItemSpellViewer.lua, TrinketBar.lua -- per-element font resolution for cooldown text and charge counts
  • Modules/PowerBar.lua, SecondaryPowerBar.lua, CastBar.lua -- per-element font resolution for bar text

Test Plan

  • Change Global Font/Font Flag/Font Colour -- verify all elements update
  • Override an individual element's font after global change -- verify it sticks independently
  • Check Trinket bar now shows Text Settings panel with all controls
  • Verify CastBar Spell Name and Cast Time have separate font controls
  • Verify Cooldown Text Settings now has Font and Font Flag dropdowns
  • Reset profile and verify defaults load correctly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant